1. Field of the Invention
This invention relates to logical error handling in an enterprise information system and more particularly relates to logical error handling in an SAP remote function call.
2. Description of the Related Art
Systeme, Anwendungen, Produkte in der Datenverarbeitung, or Systems, Applications, and Products in Data Processing (SAP), is an enterprise information and management package that is used worldwide. The SAP system tracks and manages data relevant to an enterprise, including sales, production, finance, accounting, and human resources. Other enterprise information systems (EIS's) include Ariba, Clarify CRM, eMatrix, i2, JD Edwards OneWorld, MetaSolv Applications, Oracle Applications, PeopleSoft Enterprise, Portal Infranet, Siebel Business Applications, and SunGuard FRONT ARENA.
SAP software is highly customizable to fit a customer's needs, and contains many tools for the integration and linking of third party systems and software. It also runs on multiple hardware platforms. SAP data typically resides in a central database that is shared by SAP components. A variety of databases may be used for the central database, including Oracle, Informix, Online, Adabas, DB2, DB/400, and Microsoft SQL Server 6.
Remote function Modules (RFMs) allow access to SAP data from either within SAP or from other development platforms external to SAP that support the Remote Function Call (RFC) protocol. Other enterprise systems have similar interfaces. In general, an RFM refers to any module configured to allow access to EIS data. Business application programming interfaces (BAPIs) are RFMs that are provided by SAP. Third parties also contribute RFMs that typically conform to the conventions employed by the BAPIs in data formats and error handling. One objective of the RFMs is to provide a higher level of integration between SAP and external applications and systems. The SAP Java Connector (JCo) is an API that provides Java applications access to RFM's.
The error handling convention set by the BAPIs and used by other RFMs is to throw an exception when syntax errors occur, like missing, misspelled, or incorrect settings or data in the remote function call. However, when a logical error occurs, the convention is that no exception is thrown.
Because the RFCs return a business object when a logical error occurs, and because no JCo exception is thrown, the integration adapter that passed the RFC to access SAP will return the table or structure business object to the integration broker, and on to the calling entity, without any signal that a logical error has occurred. Logical error discovery and handling, therefore, is left to the calling entity, the module, adapter, third party application, client, or user that originally made the call. Each BAPI and other RFM may use different types of business objects with different schemas, and having different error codes. Because of these individually defined schemas and codes, every calling entity must track both the error codes and the business object schemas of every RFC that the calling entity uses.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method for signaling logical errors in SAP. Beneficially, such an apparatus, system, and method would also offer faster, central signaling of logical errors, with loose coupling flexibility.